home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / muds / mordor_2.000 / mordor_2 / src / global.c < prev    next >
C/C++ Source or Header  |  1995-04-19  |  17KB  |  565 lines

  1. /*
  2.  * GLOBAL.C:
  3.  *
  4.  *    Global variables.
  5.  *
  6.  *    Copyright (C) 1991, 1992, 1993 Brett J. Vickers
  7.  *
  8.  */
  9.  
  10. #include "mstruct.h"
  11. #define MIGNORE
  12. #include "mextern.h"
  13.  
  14. int        Tablesize;
  15. int        Cmdnum;
  16. long        Time;
  17. struct lasttime    Shutdown;
  18. int        Spy[PMAX];
  19. int        Numlockedout;
  20. lockout        *Lockout;
  21.  
  22. struct {
  23.     creature    *ply;
  24.     iobuf        *io;
  25.     extra        *extr;
  26. } Ply[PMAX];
  27.  
  28. struct {
  29.     short        hpstart;
  30.     short        mpstart;
  31.     short        hp;
  32.     short        mp;
  33.     short        ndice;
  34.     short        sdice;
  35.     short        pdice;
  36. } class_stats[11] = {
  37.     {  0,  0,  0,  0,  0,  0,  0},
  38.     { 19,  2,  6,  2,  1,  6,  0},    /* assassin */
  39.     { 24,  1,  8,  1,  1,  3,  1},    /* barbarian */
  40.     { 16,  4,  5,  4,  1,  4,  0},    /* cleric */
  41.     { 22,  2,  7,  2,  1,  5,  0},    /* fighter */
  42.     { 14,  5,  4,  5,  1,  3,  0},    /* mage */
  43.     { 19,  3,  6,  3,  1,  4,  0},    /* paladin */
  44.     { 18,  3,  6,  3,  2,  2,  0},    /* ranger */
  45.     { 18,  3,  5,  2,  2,  2,  1},    /* thief */
  46.     { 30, 30, 10, 10,  5,  5,  5},    /* caretaker */
  47.     { 30, 30, 10, 10,  5,  5,  5}    /* DM */
  48. };
  49.  
  50. int bonus[35] = { -4, -4, -4, -3, -3, -2, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1,
  51.           2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 };
  52.  
  53. char class_str[][15] = { "None", "Assassin", "Barbarian", "Cleric",
  54.     "Fighter", "Mage", "Paladin", "Ranger", "Thief", "Caretaker",
  55.     "Dungeonmaster" };
  56.  
  57. char race_str[][15] = { "Unknown", "Dwarf", "Elf", "Half-elf", "Halfling",
  58.     "Human", "Orc", "Half-giant", "Gnome" };
  59.  
  60. char race_adj[][15] = { "Unknown", "Dwarven", "Elven", "Half-elven",
  61.     "Halfling", "Mannish", "Orcish", "Half-giant", "Gnomish" };
  62.  
  63. short level_cycle[][10] = {
  64.     { 0,   0,   0,   0,   0,   0,   0,   0,   0,   0   },
  65.     { CON, PTY, STR, INT, DEX, INT, DEX, PTY, STR, DEX },
  66.     { INT, DEX, PTY, CON, STR, CON, DEX, STR, PTY, STR },
  67.     { STR, DEX, CON, PTY, INT, PTY, INT, DEX, CON, INT },
  68.     { PTY, INT, DEX, CON, STR, CON, INT, STR, DEX, STR },
  69.     { STR, DEX, PTY, CON, INT, CON, INT, DEX, PTY, INT },
  70.     { DEX, INT, CON, STR, PTY, STR, INT, PTY, CON, PTY },
  71.     { PTY, STR, INT, CON, DEX, CON, DEX, STR, INT, DEX },
  72.     { INT, CON, PTY, STR, DEX, STR, CON, DEX, PTY, DEX },
  73.     { STR, DEX, INT, CON, PTY, STR, DEX, INT, CON, PTY },
  74.     { STR, DEX, INT, CON, PTY, STR, DEX, INT, CON, PTY }
  75. };
  76.  
  77. short thaco_list[][20] = { 
  78.     { 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20 }, 
  79. /*a*/    { 18,18,18,17,17,16,16,15,15,14,14,13,13,12,12,11,10,10, 9, 9 },
  80. /*b*/    { 20,19,18,17,16,15,14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 3, 2 },
  81. /*c*/    { 20,20,19,18,18,17,16,16,15,14,14,13,13,12,12,11,10,10, 9, 8 },
  82. /*f*/    { 20,19,18,17,16,15,14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 3, 3 },
  83. /*m*/    { 20,20,19,19,18,18,18,17,17,16,16,16,15,15,14,14,14,13,13,11 },
  84. /*p*/    { 19,19,18,18,17,16,16,15,15,14,14,13,13,12,11,11,10, 9, 8, 7 },
  85. /*r*/    { 19,19,18,17,16,16,15,15,14,14,13,12,12,11,11,10, 9, 9, 8, 7 },
  86. /*t*/    { 20,20,19,19,18,18,17,17,16,16,15,15,14,14,13,13,12,12,11,11 },
  87.     {  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
  88.     {  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
  89. };
  90.  
  91. long quest_exp[] = {
  92.     120, 500, 1000, 1000, 1000, 1000, 125, 125,
  93.     1000, 1000, 125, 125, 125, 1000, 2500, 2500,
  94.     2500, 5, 5, 5, 125, 125, 125, 125,
  95.     125, 125, 125, 125, 125, 125, 125, 125,
  96.     125, 125, 125, 125, 125, 125, 125, 125,
  97.     125, 125, 125, 125, 125, 125, 125, 125,
  98.     125, 125, 125, 125, 125, 125, 125, 125,
  99.     125, 125, 125, 125, 125, 125, 125, 125,
  100.     125, 125, 125, 125, 125, 125, 125, 125,
  101.     125, 125, 125, 125, 125, 125, 125, 125,
  102.     125, 125, 125, 125, 125, 125, 125, 125,
  103.     125, 125, 125, 125, 125, 125, 125, 125,
  104.     125, 125, 125, 125, 125, 125, 125, 125,
  105.     125, 125, 125, 125, 125, 125, 125, 125,
  106.     125, 125, 125, 125, 125, 125, 125, 125,
  107.     125, 125, 125, 125, 125, 125, 125, 125
  108. };
  109.  
  110. long needed_exp[] = {
  111.     512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 100000,
  112.     146410, 207360, 314171, 460992, 658125, 887504, 1202815,
  113.     1699616, 2203457, 2799000, 3505139, 4465120, 5792661, 7319072,
  114.     8874375, 2000000};   
  115.  
  116. char lev_title[][8][20] = {
  117.     { "", "", "", "", "", "", "", "" },
  118.     { "Minor Assassin", "Rutterkin", "Killer", "Cutthroat",
  119.       "Murderer", "Executioner", "Expert Assassin", "Master Assassin" },
  120.     { "Grunt", "Tribesman", "Savage", "Brutalizer", 
  121.       "Dragon-slayer", "Barbarian Chief", "Destroyer", "Master Barbarian" },
  122.     { "Acolyte", "Healer", "Adept", "Priest",
  123.       "Cardinal", "Lama", "Patriarch", "High Priest" },
  124.     { "Veteran", "Warrior", "Punisher", "Pugilist",
  125.       "Myrmidon", "Hero", "Champion", "Lord" },
  126.     { "Apprentice", "Prestidigitator", "Necromancer", "Occultate",
  127.       "Thaumaturgist", "Enchanter", "Sorcerer", "Wizard" },
  128.     { "Gallant", "Protector", "Warder", "Guardian",
  129.       "Ordained Paladin", "Chevalier", "Justiciar", "Holy Warrior" },
  130.     { "Searcher", "Scout", "Tracker", "Underhillsman", 
  131.       "Royal Guide", "Pathfinder", "Ranger Knight", "Ranger Lord" },
  132.     { "Rogue", "Footpad", "Dervish", "Burglar",
  133.       "Sharper", "Magsman", "High Thief", "Master Thief" },
  134.     { "Bumbling Idiot", "Immortal", "Slave", "Fool",
  135.       "Addict", "Egomaniac", "Laborer", "Caretaker" },
  136.     { "Bumbling Idiot", "Egomaniac", "Computer Nerd", "Dungeon Lord", 
  137.       "Arch Occultate", "Divine Entity", "Addict", "Dungeonmaster"  }
  138. };
  139.  
  140. struct {
  141.     char    *cmdstr;
  142.     int    cmdno;
  143.     int    (*cmdfn)();
  144. } cmdlist[] = {
  145.     { "n", 1, move },
  146.     { "north", 1, move },
  147.     { "s", 1, move },
  148.     { "south", 1, move },
  149.     { "e", 1, move },
  150.     { "east", 1, move },
  151.     { "w", 1, move },
  152.     { "west", 1, move },
  153.     { "northeast", 1, move },
  154.     { "ne", 1, move },
  155.     { "northwest", 1, move },
  156.     { "nw", 1, move },
  157.     { "southeast", 1, move },
  158.     { "se", 1, move },
  159.     { "southwest", 1, move },
  160.     { "sw", 1, move },
  161.     { "u", 1, move },
  162.     { "up", 1, move },
  163.     { "d", 1, move },
  164.     { "down", 1, move },
  165.     { "out", 1, move },
  166.     { "leave", 1, move },
  167.     { "l" , 2, look },
  168.     { "look", 2, look },
  169.     { "examine", 2, look },
  170.     { "quit", 3, quit },
  171.     { "quit", 3, quit },
  172.     { "goodbye", 3, quit },
  173.     { "goodbye", 3, quit },
  174.     { "say", 4, say },
  175.     { "\"", 4, say },
  176.     { "'", 4, say },
  177.     { "get", 5, get },
  178.     { "take", 5, get },
  179.     { "inventory", 6, inventory },
  180.     { "i", 6, inventory },
  181.     { "drop", 7, drop },
  182.     { "put", 7, drop },
  183.     { "who", 8, who },
  184.     { "wear", 9, wear },
  185.     { "remove", 10, remove_obj },
  186.     { "rm", 10, remove_obj },
  187.     { "equipment", 11, equipment },
  188.     { "hold", 12, hold },
  189.     { "wield", 13, ready },
  190.     { "ready", 13, ready },
  191.     { "help", 14, help },
  192.     { "?", 14, help },
  193.     { "health", 15, health },
  194.     { "score", 15, health },
  195.     { "sc", 15, health },
  196.     { "information", 16, info },
  197.     { "send", 17, send },
  198.     { "sen", 17, send },
  199.     { "tell", 17, send },
  200.     { "follow", 18, follow },
  201.     { "lose", 19, lose },
  202.     { "group", 20, group },
  203.     { "party", 20, group },
  204.     { "track", 21, track },
  205.     { "peek", 22, peek },
  206.     { "attack", 23, attack },
  207.     { "kill", 23, attack },
  208.     { "k", 23, attack },
  209.     { "search", 24, search },
  210.         { "emote",25, emote},    
  211.     { "hide", 26, hide },
  212.     { "set", 27, set },
  213.     { "clear", 28, clear },
  214.     { "yell", 29, yell },
  215.     { "go", 30, go },
  216.     { "enter", 30, go },
  217.     { "open", 31, openexit },
  218.     { "close", 32, closeexit },
  219.     { "shut", 32, closeexit },
  220.     { "unlock", 33, unlock },
  221.     { "lock", 34, lock },
  222.     { "pick", 35, picklock },
  223.     { "steal", 36, steal },
  224.     { "flee", 37, flee },
  225.     { "fl", 37, flee },
  226.     { "run", 37, flee },
  227.     { "c", 38, cast },
  228.     { "cast", 38, cast },
  229.     { "study", 39, study },
  230.     { "learn", 39, study },
  231.     { "read", 40, readscroll },
  232.     { "recite", 40, readscroll },
  233.     { "list", 41, list },
  234.     { "buy", 42, buy },
  235.     { "sell", 43, sell },
  236.     { "value", 44, value },
  237.     { "cost", 44, value },
  238.     { "bs", 45, backstab },
  239.     { "backstab", 45, backstab },
  240.     { "train", 46, train },
  241.     { "give", 47, give },
  242.     { "repair", 48, repair },
  243.     { "fix", 48, repair },
  244.     { "time", 49, prt_time },
  245.     { "circle", 50, circle },
  246.     { "bash", 51, bash },
  247.     { "save", 52, savegame },
  248.     { "sendmail", 53, postsend },
  249.     { "readmail", 54, postread },
  250.     { "deletemail", 55, postdelete },
  251.     { "talk", 56, talk },
  252.     { "ask", 56, talk },
  253.     { "parley", 56, talk },
  254.     { "gtalk",57, gtalk },
  255.     { "drink", 58, drink },
  256.     { "quaff", 58, drink },
  257.     { "broadcast", 59, broadsend },
  258.     { "zap", 60, zap },
  259.     { "welcome", 61, welcome },
  260.     { "turn", 62, turn },
  261.     { "bribe", 63, bribe },
  262.     { "haste", 64, haste },
  263.     { "pray", 65, pray },
  264.     { "prepare", 66, prepare },
  265.     { "use", 67, use },
  266.     { "ignore", 68, ignore },
  267.     { "whois", 69, whois },
  268.     { "sneak", 70, sneak },
  269.     { "teach", 71, teach },
  270.     { "pledge",72, pledge },
  271.     { "rescind",73, rescind },
  272.         { "purchase",74, purchase },    
  273.         { "selection",75, selection }, 
  274.         { "trade",76, trade},    
  275.     { "suicide", 77, ply_suicide },
  276.     { "passwd", 78, passwd},
  277.     { "vote",79,vote},
  278.     { "finger", 80, pfinger},
  279.     { "nod", 100, action },
  280.     { "sleep", 100, action },
  281.     { "grab", 100, action },
  282.     { "shove", 100, action },
  283.     { "stand", 100, action },
  284.     { "sit", 100, action },
  285.     { "nervous", 100, action },
  286.     { "bird", 100, action },
  287.     { "ogle", 100, action },
  288.     { "nod", 100, action },
  289.     { "relax", 100, action },
  290.     { "puke", 100, action },
  291.     { "think", 100, action },    
  292.     { "cheer", 100, action },
  293.     { "ponder", 100, action },
  294.     { "ack", 100, action },
  295.     { "laugh", 100, action },
  296.     { "burp", 100, action },
  297.     { "frustrate", 100, action },
  298.     { "warm", 100, action},
  299.     { "kick", 100, action },
  300.     { "tackle", 100, action },
  301.     { "knee", 100, action },
  302.     { "pounce", 100, action },
  303.     { "tickle", 100, action },
  304.     { "snicker", 100, action },
  305.     { "tap", 100, action },
  306.     { "smile", 100, action },
  307.     { "beam", 100, action},
  308.     { "masterbate", 100, action},
  309.     { "smoke", 100, action },
  310.     { "shake", 100, action },
  311.     { "cackle", 100, action },
  312.     { "chuckle", 100, action },
  313.     { "wave", 100, action },
  314.     { "poke", 100, action },
  315.     { "yawn", 100, action },
  316.     { "sigh", 100, action },
  317.     { "bounce", 100, action },
  318.     { "shrug", 100, action },
  319.     { "twiddle", 100, action },
  320.     { "grin", 100, action },
  321.     { "frown", 100, action },
  322.     { "giggle", 100, action },
  323.     { "sing", 100, action },
  324.     { "hum", 100, action },
  325.     { "snap", 100, action },
  326.     { "jump", 100, action },
  327.     { "skip", 100, action },
  328.     { "dance", 100, action },
  329.     { "cry", 100, action },
  330.     { "bleed", 100, action },
  331.     { "sniff", 100, action },
  332.     { "whimper", 100, action },
  333.     { "cringe", 100, action },
  334.     { "whistle", 100, action },
  335.     { "smirk", 100, action },
  336.     { "gasp", 100, action },
  337.     { "grunt", 100, action },
  338.     { "stomp", 100, action },
  339.     { "flex", 100, action },
  340.     { "blush", 100, action },
  341.     { "faint", 100, action },
  342.     { "hug", 100, action },
  343.     { "expose", 100, action },
  344.     { "wink", 100, action },
  345.     { "clap", 100, action },
  346.     { "drool", 100, action },
  347.     { "copulate", 100, action },
  348.     { "goose", 100, action },
  349.     { "fume", 100, action },
  350.     { "rage", 100, action },
  351.     { "pout", 100, action },
  352.     { "spit", 100, action },
  353.     { "fart", 100, action },
  354.     { "comfort", 100, action },
  355.     { "pat", 100, action },
  356.     { "kiss", 100, action },
  357.     { "glare", 100, action },
  358.     { "slap", 100, action },
  359.     { "suck", 100, action },
  360.     { "defecate", 100, action },
  361.     { "bow", 100, action },
  362.     { "cough", 100, action },
  363.     { "confused", 100, action },
  364.     { "grumble", 100, action },
  365.     { "hiccup", 100, action },
  366.     { "mutter", 100, action },
  367.     { "scratch", 100, action },
  368.     { "strut", 100, action },
  369.     { "sulk", 100, action },
  370.     { "satisfied", 100, action },
  371.     { "wince", 100, action },
  372.     { "roll", 100, action },
  373.     { "raise", 100, action },
  374.     { "whine", 100, action },
  375.     { "growl", 100, action },
  376.     { "high5", 100, action },
  377.     { "moon", 100, action },
  378.     { "purr", 100, action },
  379.     { "taunt", 100, action },
  380.     { "eye", 100, action },
  381.     { "worship", 100, action },
  382.     { "flip", 100, action },
  383.     { "groan", 100, action },
  384.     { "*teleport", 101, dm_teleport },
  385.     { "*rm", 102, dm_rmstat },
  386.     { "*reload", 103, dm_reload_rom },
  387.     { "*save", 104, dm_resave },
  388.     { "*create", 105, dm_create_obj },
  389.     { "*c", 105, dm_create_obj },
  390.     { "*perm", 106, dm_perm },
  391.     { "*invis", 107, dm_invis },
  392.     { "*i", 107, dm_invis },
  393.     { "*s", 108, dm_send },
  394.     { "*send", 108, dm_send },
  395.     { "*purge", 109, dm_purge },
  396.     { "*ac", 110, dm_ac },
  397.     { "*users", 111, dm_users },
  398.     { "*echo", 112, dm_echo },
  399.     { "*flushrooms", 113, dm_flushsave },
  400.     { "*shutdown", 114, dm_shutdown },
  401.     { "*f", 115, dm_force },
  402.     { "*force", 115, dm_force },
  403.     { "*flushcrtobj", 116, dm_flush_crtobj },
  404.     { "*monster", 117, dm_create_crt },
  405.     { "*status", 118, dm_stat },
  406.     { "*add", 119, dm_add_rom },
  407.     { "*set", 120, dm_set },
  408.     { "*log", 121, dm_log },
  409.     { "*spy", 122, dm_spy },
  410.     { "*lock", 123, dm_loadlockout },
  411.     { "*finger", 124, dm_finger },
  412.     { "*list", 125, dm_list },
  413.     { "*info", 126, dm_info },
  414.     { "*parameter", 127, dm_param },
  415.     { "*silence", 128, dm_silence},
  416.     { "*broad", 129, dm_broadecho},
  417.      { "*replace",130, dm_replace},    
  418.         { "*name",131, dm_nameroom},    
  419.        { "*append",132, dm_append},    
  420.        { "*prepend",133, dm_prepend},    
  421.        { "*gcast",134, dm_cast},    
  422.         { "*group",135, dm_group},    
  423.     { "*notepad",136, notepad},
  424.      { "*delete",137, dm_delete},    
  425.     { "*oname", 138, dm_obj_name },
  426.     { "*cname", 139, dm_crt_name },
  427.     { "*active", 140, list_act },
  428.     { "*dust", 141, dm_dust },
  429.     { "*cfollow", 142, dm_follow },
  430.     { "*dmhelp", 143, dm_help },
  431.     { "*attack", 144, dm_attack },
  432.     { "*enemy", 145, list_enm },
  433.     { "*charm", 146, list_charm },
  434.     { "push", -2, 0 },
  435.     { "press", -2, 0 },
  436.     { "@", 0, 0 }
  437. };
  438.  
  439. char article[][10] = {
  440.     "the",
  441.     "from",
  442.     "to",
  443.     "with",
  444.     "an",
  445.     "in",
  446.     "for",
  447.     "@"
  448. };
  449.  
  450. struct {
  451.     char     *splstr;
  452.     int    splno;
  453.     int    (*splfn)();
  454. } spllist[] = {
  455.     { "vigor", SVIGOR, vigor },
  456.     { "hurt", SHURTS, offensive_spell },
  457.     { "light", SLIGHT, light },
  458.     { "curepoison", SCUREP, curepoison },
  459.     { "bless", SBLESS, bless },
  460.     { "protection", SPROTE, protection },
  461.     { "fireball", SFIREB, offensive_spell },
  462.     { "invisibility", SINVIS, invisibility },
  463.     { "restore", SRESTO, restore },
  464.     { "detect-invisible", SDINVI, detectinvis },
  465.     { "detect-magic", SDMAGI, detectmagic },
  466.     { "teleport", STELEP, teleport },
  467.     { "stun", SBEFUD, befuddle },
  468.     { "lightning", SLGHTN, offensive_spell },
  469.     { "iceblade", SICEBL, offensive_spell },
  470.     { "enchant", SENCHA, enchant },
  471.     { "word-of-recall", SRECAL, recall },
  472.     { "summon", SSUMMO, summon },
  473.     { "mend-wounds", SMENDW, mend },
  474.     { "heal", SFHEAL, heal },
  475.     { "track", STRACK, magictrack },
  476.     { "levitate", SLEVIT, levitate },
  477.     { "resist-fire", SRFIRE, resist_fire },
  478.     { "fly", SFLYSP, fly },
  479.     { "resist-magic", SRMAGI, resist_magic },
  480.     { "shockbolt", SSHOCK, offensive_spell },
  481.     { "rumble", SRUMBL, offensive_spell },
  482.     { "burn", SBURNS, offensive_spell },
  483.     { "blister", SBLIST, offensive_spell },
  484.     { "dustgust", SDUSTG, offensive_spell },
  485.     { "waterbolt", SWBOLT, offensive_spell },
  486.     { "crush", SCRUSH, offensive_spell },
  487.     { "shatterstone", SENGUL, offensive_spell },
  488.     { "burstflame", SBURST, offensive_spell },
  489.     { "steamblast", SSTEAM, offensive_spell },
  490.     { "engulf", SSHATT, offensive_spell },
  491.     { "immolate", SIMMOL, offensive_spell },
  492.     { "bloodboil", SBLOOD, offensive_spell },
  493.     { "thunderbolt", STHUND, offensive_spell },
  494.     { "earthquake", SEQUAK, offensive_spell },
  495.     { "flamefill", SFLFIL, offensive_spell },
  496.     { "know-aura", SKNOWA, know_alignment },
  497.     { "remove-curse", SREMOV, remove_curse },
  498.     { "resist-cold", SRCOLD, resist_cold},
  499.     { "breathe-water", SBRWAT, breathe_water},
  500.     { "earth-shield", SSSHLD, earth_shield},
  501.     { "clairvoyance", SLOCAT, locate_player},
  502.     { "drain-exp", SDREXP, drain_exp},
  503.     { "remove-disease", SRMDIS, rm_disease},
  504.     { "cure-blindness", SRMBLD, rm_blind},
  505.     { "fear", SFEARS, fear}, 
  506.     { "room-vigor", SRVIGO, room_vigor}, 
  507.     { "transport", STRANO, object_send},
  508.     { "blind", SBLIND, blind},
  509.     { "silence", SSILNC, silence},
  510.     { "charm", SCHARM, charm},
  511.     { "@", -1,0 }
  512. };
  513.  
  514. struct osp_t ospell[] = {
  515.     { SHURTS,  WIND,  3, 1, 8,  0, 1 },    /* hurt */
  516.     { SRUMBL, EARTH,  3, 1, 8,  0, 1 },    /* rumble */
  517.     { SBURNS,  FIRE,  3, 1, 7,  1, 1 },    /* burn */
  518.     { SBLIST, WATER,  3, 1, 8,  0, 1 },    /* blister */
  519.  
  520.     { SDUSTG,  WIND,  7, 2, 5,  7, 2 },    /* dustgust */
  521.     { SCRUSH, EARTH,  7, 2, 5,  7, 2 },    /* stonecrush */
  522.     { SFIREB,  FIRE,  7, 2, 5,  8, 2 },    /* fireball */
  523.     { SWBOLT, WATER,  7, 2, 5,  8, 2 },    /* waterbolt */
  524.  
  525.     { SSHOCK,  WIND, 10, 2, 5, 13, 2 },    /* shockbolt */
  526.     { SENGUL, EARTH, 10, 2, 5, 13, 2 },    /* engulf */
  527.     { SBURST,  FIRE, 10, 2, 5, 13, 2 },    /* burstflame */
  528.     { SSTEAM, WATER, 10, 2, 5, 13, 2 },    /* steamblast */
  529.  
  530.     { SLGHTN,  WIND, 15, 3, 4, 18, 3 },    /* lightning */
  531.     { SSHATT, EARTH, 15, 3, 4, 19, 3 },    /* shatterstone */
  532.     { SIMMOL,  FIRE, 15, 3, 4, 18, 3 },    /* immolate */
  533.     { SBLOOD, WATER, 15, 3, 4, 18, 3 },    /* bloodboil */
  534.  
  535.     { STHUND,  WIND, 25, 4, 5, 30, 3 },    /* thuderbolt */
  536.     { SEQUAK, EARTH, 25, 4, 5, 30, 3 },     /* earthquake */
  537.     { SFLFIL,  FIRE, 25, 4, 5, 30, 3 },    /* flamefill */
  538.     { SICEBL, WATER, 25, 4, 5, 30, 3 },    /* iceblade */
  539.     { -1, 0, 0, 0, 0, 0, 0 }
  540. };
  541.  
  542. char number[][10] = {
  543.     "zero",
  544.     "one",
  545.     "two",
  546.     "three",
  547.     "four",
  548.     "five",
  549.     "six",
  550.     "seven",
  551.     "eight",
  552.     "nine",
  553.     "ten",
  554.     "eleven",
  555.     "twelve",
  556.     "thirteen",
  557.     "fourteen",
  558.     "fifteen",
  559.     "sixteen",
  560.     "seventeen",
  561.     "eighteen",
  562.     "nineteen",
  563.     "twenty"
  564. };
  565.